import Vue from 'vue'

import 'normalize.css/normalize.css' // A modern alternative to CSS resets

import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
// import locale from 'element-ui/lib/locale/lang/en' // lang i18n

import '@/styles/index.scss' // global css

import App from './App'
import store from './store'
import router from './router'

import '@/icons' // icon
import '@/permission' // permission control

if (process.env.NODE_ENV === 'production') {
  const { mockXHR } = require('../mock')
  mockXHR()
}

// set ElementUI lang to EN
// Vue.use(ElementUI, { locale })
// 如果想要中文版 element-ui，按如下方式声明
Vue.use(ElementUI)

import { imageerror } from '@/directives'
Vue.directive('imageerror', imageerror)

// 封装全局组件
// import PageTools from '@/components/PageTools'
// Vue.component('PageTools', PageTools)
// 以上是普通的创建全局组件方法
// 如果是专业的第三方组件, 不会要求用户写这么多的代码引入组件
// 而是使用 Vue.use() 架构来实现
// 这个函数的德行就在于会自动运行传入参数对象里面的 install
// 注册之类的东西都可以放进里面
import components from '@/components'
Vue.use(components)

// 过滤器
// 全局过滤器的创建方法是Vue.filter(名称,函数体)
// import { formatDate } from '@/filters'
// Vue.filter('formatDate', formatDate)
import * as filters from '@/filters'
// 拿到的是一个对象, 里面以 key: value 的形式储存了 过滤器名:过滤器函数
// 遍历这个对象
for (var key in filters) {
  const filterName = key
  const filterFunction = filters[key]
  Vue.filter(filterName, filterFunction)
}

Vue.config.productionTip = false
// import { from } from 'core-js/fn/array'

new Vue({
  el: '#app',
  router,
  store,
  render: h => h(App)
})
